Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge quasar latest into wywm #3

Open
wants to merge 6,351 commits into
base: dev
Choose a base branch
from

Conversation

bfutterleib
Copy link

@bfutterleib bfutterleib commented May 18, 2021

What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Documentation
  • Code style update
  • Refactor
  • Build-related changes
  • Other, please describe:

Does this PR introduce a breaking change? (check one)

  • Yes
  • No

If yes, please describe the impact and migration path for existing applications:

The PR fulfills these requirements:

  • It's submitted to the dev branch and not the master branch
  • When resolving a specific issue, it's referenced in the PR's title (e.g. fix: #xxx[,#xxx], where "xxx" is the issue number)
  • It's been tested on a Cordova (iOS, Android) app
  • It's been tested on a Electron app
  • Any necessary documentation has been added or updated in the docs (for faster update click on "Suggest an edit on GitHub" at bottom of page) or explained in the PR's description.

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

yusufkandemir and others added 30 commits November 11, 2024 16:21
TS aliases doesn't play well with package.json#exports:
microsoft/TypeScript#60460
So, we had to specify each entry point separately
we already do in other places, but playground apps were an exception
…in manifest file; correctly reload chrome on assets change
…on in manifest file; correctly reload chrome on assets change
* feat(app-vite): generate .quasar/tsconfig.json

* feat(app-vite): generate tsconfig exclude

* feat(app-vite): add Capacitor dependencies to tsconfig paths
the Vite aliases were already there, thanks to this, TypeScript won't
complain about using Capacitor deps inside src/ anymore

* feat(app-vite): handle folder module and file aliases in tsconfig paths

* refactor(app-vite): extract tsconfig generation to a function

* feat(app-vite): generate nested path aliases for capacitor deps too
e.g. `@capacitor/dep/deep/import`

* feat(app-vite): add build.typescript.extendTsConfig hook

* feat(app-vite): create a better tsconfig, drop presets
enforce TS >=5.4 to use module: 'preserve'
forceConsistentCasingInFileNames defaults to true since TS 5.0
verbatimModuleSyntax will require user to update their codes
jsx: preserve is no longer needed for Vue Language Tools

strict: true and some of the other strict options will be added through a flag

* feat(app-vite): add an option to generate tsconfig with strict rules

compared to previous regular preset:
noUnusedLocals is turned off as it produces extra noise when using ESLint, where the behavior is better as it's configurable

compared to previous stricter config:
noPropertyAccessFromIndexSignature is removed as it doesn't even allow process.env.DEV unless it's augmented explicitly, which we don't do at the moment. It enforces process.env['DEV'] instead, which is annoying and confusing to use. We can't augment the env variables as Node types enforce string, but our own types are actual boolean values.

noImplicitReturns reduces the DX and is not that beneficial in app code compared to its use in library code. It still has it's uses, but it doesn't belong the usual strictness.

* feat(app-vite): only generate .quasar/tsconfig.json if the app has TS

* fix(app-vite): correctly handle non-existent aliases
they were throwing errors, now we skip them for an even slimmer result

* feat(create-quasar): adapt ts-vite-2  to latest specs

* fix(app-vite): suppress the esbuild tsconfig.json warning
when .quasar/tsconfig.json is missing prior to generation

* feat(app-vite): split types generation, handle it on diff
now it will re-generate the types if build.typescript or build.alias gets updated

* feat(app-vite): add prepare command
to generate tsconfig and types

* feat(create-quasar): add postinstall script to run quasar prepare

* feat(create-quasar): remove tsconfig.vue-tsc.json as it's not required anymore

* feat(app-vite): move feature flags into .quasar

* feat(create-quasar): remove unused store-flag.d.ts
as feature flags are handled into .quasar now

* docs(app-vite): document tsconfig changes

* feat(app-vite): generate declarations and vue shims

* feat(app-vite): make vue shim generation optional

* feat(create-quasar): adapt to latest TS specs

* docs(app-vite): document dts generation and feature flag changes

* docs(app-vite): correctly reference .quasar/tsconfig

* docs(app-vite): mention Capacitor TS changes

* refactor(app-vite): queue generateTypes call instead of awaiting

* docs(app-vite): enrich TS-related info in upgrade guide

* Update bex-devserver.js

* Update app-devserver.js

* Update mode.js

* feat(app-vite): generate and utilize tsconfig for JS projects too

Co-authored-by: Razvan Stoenescu <[email protected]>

---------

Co-authored-by: Razvan Stoenescu <[email protected]>
… transform aliases to ts paths; ...and other
…ontent doesn't change to not uselessly force esbuild compile & apply quasar.config file changes
rstoenescu and others added 30 commits December 11, 2024 14:27
fix: 🐛 add missing comma to templates
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.